//#define _CRT_SECURE_NO_WARNINGS 1
//#include <stdio.h>
//#include <malloc.h>
//#include <string.h>
//typedef int Type;
//typedef struct node
//{
//	Type data;
//	struct node* next;
//}Stacknode;
//
//Stacknode* InitStack()
//{
//	Stacknode* s = (Stacknode*)malloc(sizeof(Stacknode));
//	s->next = NULL;
//	return s;
//}
//
//int push(Stacknode* s, Type x)
//{
//	Stacknode *p= (Stacknode*)malloc(sizeof(Stacknode));
//	p->data = x;
//	p->next = s->next;
//	s->next = p;
//	return 1;
//}
//
//
//int pop(Stacknode* s, Type *x)
//{
//	Stacknode* p=s->next;
//	if (s->next == NULL)
//	{
//		return 0;
//	}
//	*x = p->data;
//	s->next = p->next;
//	free(p);
//	return 1;
//}
//
//
//
//int GetTop(Stacknode* s, Type* x)
//{
//	if (s->next == NULL)
//	{
//		return 0;
//	}
//	*x = s->next->data;
//	return 1;
//}
//
//
//int  Pali(char str[], int n)
//{
//	Stacknode* s = InitStack();
//	int i = 0;
//	while (i < n / 2)
//	{
//		push(s, str[i++]);
//	}
//	if (n % 2)
//	{
//		i++;
//	}
//	while (str[i] != '\0')
//	{
//		Type x;
//		
//		pop(s, &x);
//		if (x != str[i])
//			return 0;
//		else
//			i++;
//	}
//	return 1;
//}
//
//
//
//int main()
//{
//	char str[100];
//	gets(str);
//	if (Pali(str, strlen(str)) == 1)
//	{
//		printf("Yes\n");
//	}
//	else
//		printf("NO\n");
//	return 0; 
//}